const { getOptions } = require("loader-utils") // 获取options
const { validate } = require('schema-utils') // 对options的参数进行校验
const schema = require("./schema.json");
// NormalLoader
// 异步Loader: this.async()
module.exports = function (content) {
  console.log(content, "哈哈哈, 这是我的自定义loader 并且是异步的");

  // 获取传入的参数:
  const options = getOptions(this)
  console.log("传入的参数是:", options)

  validate(schema, options, {
    name: "myloader"
  })

  const callback = this.async()

  setTimeout(() => {
    callback(null, content)
  }, 2000)
}

// 同步Loader
// module.exports = function(content) {
   // console.log(content, "哈哈哈, 这是我的loader01");
   // 同步loader不能使用setTimeout
   /* setTimeout(() => {
     this.callback(null, content);
   }, 2000) */

   // 同步的loader, 两种方法返回数据
   // return content
   // this.callback(null, content)
// }